package com.eight.cloud.client.model.dto;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

/**
 * @ClassName: OrderVo
 * @Description: 订单信息
 * @Author: TXC
 * @Date: 2024-12-26 09:54
 **/
@Data
@Accessors(chain = true)
public class OrderDto implements Serializable {

    /**
     * 订单标题
     */
    private String title;

    /**
     * 订单描述
     */
    private String description;

    /**
     * 总金额 分为单位
     */
    private Integer price;

    /**
     * 公众号支付需传微信openid
     */
    private String openId;

     /**
     * 商户id
     */
    private String subMerchantId;

    /**
     * 商户订单号
     */
    private String outTradeNo;

    /**
     * 付款码支付授权码 付款码支付时必传参数
     */
    private String authCode;

    /**
     * 商家自定义编码
     */
    private String outId;

    /**
     * 回调地址 jsapi或者native方式支持，扫码支付不支持
     * 为空则默认websocket方式回调
     */
    private String notifyUrl;

    /**
     * @return 价格（元为单位）
     */
    public String getPriceYuan(){
        DecimalFormat df = new DecimalFormat("0.00");
        return df.format(new BigDecimal(price).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP));
    }

    /**
     * @return 价格（分为单位）
     */
    public String getPriceFen(){
        DecimalFormat df = new DecimalFormat("0");
        return df.format(price);
    }
}
